/*
#include<stdio.h>
#include<stdlib.h>

int cmp(const void *a,const void *b)
{
	return *((int *)a)-*((int *)b);
}

int main()
{
	int k;
	scanf("%d",&k);
	while(k--)
	{
		int n;
		char str;
		int sum[5]={0};
		scanf("%d",&n);
		getchar(); 
		for(int i=0;i<n;i++)
		{
			scanf("%c",&str);
			if(str=='A')
			{
				sum[0]++;
			}
			else if(str=='C')
			{
				sum[1]++;
			}
			else if(str=='E')
			{
				sum[2]++;
			}
			else if(str=='P')
			{
				sum[3]++;
			}
			else if(str=='T')
			{
				sum[4]++;
			}
		}
		sum[1]/=2;
		qsort(sum,5,sizeof(int),cmp);
		printf("%d\n",sum[0]);
	}
	return 0;
}
*/
/*
#include<stdio.h>
int main()
{
	int n=0;
	scanf("%d",&n);
	if(n%2==0)
	{
		printf("%d",2*n);
	}
	else
	{
		printf("%d",2*(n+1)-1);
	}
	return 0;
}
*/

/*
#include<stdio.h>
#define N 1000100

double num[N];

double MIN(double a,double b)
{
	return a<b?a:b;
}

int main()
{
	double avar=0;
	int n;
	scanf("%d",&n);
	double min=0;
	for(int i=0;i<n;i++)
	{
		scanf("%lf",num+i);
		if(i)
		{
			min=MIN(min,(num[i]+1)/(i+1));
		}
		else
		{
			min=(num[i]+1)/(i+1);
		}
	}
	printf("%lf\n",min);
	return 0;
}
*/


#include<stdio.h>
#define N 100010

int map[N];
long long sum[N];
int str[N];
int over[N];

int main()
{
	int n,key;
	scanf("%d%d",&n,&key);
	over[0]=key;
	int j=1,m=0;
	long long res=0;
	for(int i=0;i<n;i++)
	{
		scanf("%d",map+i);
		if(i==0) continue;
		sum[i]=sum[i-1]+map[i];
		if(map[i]==0)
		{
			str[j]=sum[i]-sum[m];
			if(str[j]>=key)
			{
				printf("NO\n");
				return 0;
			}
			over[j]=over[j-1]-str[j];
			if(over[j]<=0)
			{
				if(str[j]+str[j-1]<key)
				{
					int t=j-2;
					int he=0;
					he=str[j]+str[j-1];
					while(he<key)
					{
                        he+=str[t];
						t--;
					}
                    over[t+2]=key-str[t+2];
					for(int p=t+3;p<=j;p++)
					{
						over[p]=over[p-1]-str[p];
					}
					res+=key-over[t+1];
				}
				else
				{
					over[j]=key-str[j];
					res+=key-over[j-1];
				}
				
			}
			m=i;
			j++;
		}
		res++;
	}
	printf("%lld\n",res);
	return 0;
}






















